#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
int arr[10100], brr[10100], crr[10100];
void Mul()
{
	for (int i = 1; i <= arr[0]; i++) {
		for (int j = 1; j <= brr[0]; j++) {
			crr[i + j - 1] += arr[i] * brr[j];
			int x = crr[i + j - 1] / 10;
			crr[i + j] += x;
			crr[i + j - 1] %= 10;
		}
	}
	int i = arr[0] + brr[0];
	while (i && crr[i] == 0) {
		i--;
	}
	crr[0] = max(1, i);
	for (int j = crr[0]; j > 0; j--) {
		cout << crr[j];
	}
}
int main()
{
	string a, b;
	cin >> a >> b;
	arr[0] = a.size();
	brr[0] = b.size();
	for (int i = 1; i <= a.size(); i++) {
		arr[i] = a[a.size() - i] - '0';
	}
	for (int i = 1; i <= b.size(); i++) {
		brr[i] = b[b.size() - i] - '0';
	}
	Mul();
	return 0;
}
//vector<int> Mul(vector<int>& A, vector<int>& B)
//{
//	vector<int> C;
//	C.push_back(0);
//	for (int i = 1; i <= A.size(); i++) {
//		for (int j = 1; j <= B.size(); j++) {
//			C[i + j - 1] += A[i] * B[j];
//			C[i + j] += C[i + j - 1] / 10;
//			C[i + j - 1]  %= 10;
//		}
//	}
//	while (C.size() > 2 && C.back() == 0) {
//		C.pop_back();
//	}
//	return C;
//}
//int main()
//{
//	vector<int>A, B;
//	string a, b;
//	cin >> a >> b;
//	A.push_back(0);
//	B.push_back(0);
//	for (int i = a.size() - 1; i >= 0; i--) {
//		A.push_back(a[i] - '0');
//	}
//	for (int i = b.size() - 1; i >= 0; i--) {
//		B.push_back(b[i] - '0');
//	}
//	auto C = Mul(A, B);
//	for (int i = C.size(); i >= 1; i--) {
//		cout << C[i];
//	}
//	return 0;
//}
//bool cmp(string a, string b)
//{
//	if (a.size() != b.size()) {
//		return a.size() > b.size();
//	}
//}
//string Mul(string a, string b)
//{
//	string ans;
//	int t = 0;
//	for (int i = 0; i < a.size(); i++) {
//		for (int j = 0; j < b.size(); j++) {
//			ans[i + j - 1] += a[i] * b[j];
//			ans[i + j] += a[i] * b[j] / 10;
//			ans[i + j - 1] = a[i] * b[j] % 10;	
//		} 
//	}
//}
//int main()
//{
//	string a, b;
//	cin >> a >> b;
//	if (a[0] == 0 || b[0] == 0) {
//		cout << 0 << endl;
//		return 0;
//	}
//	if (cmp(a, b)) {
//		string c = Mul(a, b);
//		cout << c << endl;
//	}
//	else {
//		string c = Mul(b,a);
//		cout << c << endl;
//	}
//	return 0;
//}